﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BUS;

namespace DTO
{
    public partial class FormMonHoc : Form
    {
        public FormMonHoc()
        {
            InitializeComponent();
        }

        string idmonhoc;

        void LoadDataforGirdView()
        {
            DataTable data = Khoi_MonHocBUS.MakeDataTable();
            dgvDanhSach.DataSource = data;
            dgvDanhSach.Columns[7].Visible = false;
        }

        private void btnThem_Click(object sender, EventArgs e)
        {

        }

        private void FormMonHoc_Load(object sender, EventArgs e)
        {
            LoadDataforGirdView();
            cmbKhoi.DataSource = Khoi_MonHocBUS.GetAllKhoi();
            cmbKhoi.DisplayMember = "TenKhoi";
            cmbKhoi.ValueMember = "id";
        }

        private void dgvDanhSach_Click(object sender, EventArgs e)
        {
            if (dgvDanhSach.SelectedRows.Count > 0)
            {
                DataGridViewSelectedRowCollection rows = dgvDanhSach.SelectedRows;
                if (rows.Count > 0)
                {
                    tbTenMonHoc.Text = rows[0].Cells[1].Value.ToString();
                    idmonhoc = rows[0].Cells[7].Value.ToString();
                }
            }
            Khoi_MonHocDTO dto = new Khoi_MonHocDTO();
            dto.IDKhoi = cmbKhoi.SelectedValue.ToString();
            dto.IDMonHoc = idmonhoc;
            string sotiettrongtuan = Khoi_MonHocBUS.GetSoTietTrongTuan(dto);
            tbSoTietTrongTuan.Text = sotiettrongtuan;

            string tongsotiethoc = Khoi_MonHocBUS.GetTongSoTietHoc(dto.IDKhoi);
            tbTongSoTietHoc.Text = tongsotiethoc;

        }

        bool Validate()
        {
            if (tbSoTietTrongTuan.Text == "")
            {
                MessageBox.Show("Số tiết trong tuần không được bỏ trống");
                return false;
            }
            else
            {
                try
                {
                    int i = int.Parse(tbSoTietTrongTuan.Text);
                    if (i < 1)
                    {
                        MessageBox.Show("Số tiết trong tuần không phải là số tự nhiên >0");
                        return false;
                    }
                }
                catch (Exception)
                {
                    MessageBox.Show("Số tiết trong tuần không phải là số tự nhiên >0");
                    return false;
                }
            }
            return true;
        }

        private void btnCapNhat_Click(object sender, EventArgs e)
        {
            if (dgvDanhSach.SelectedRows.Count > 0)
            {
                if (Validate())
                {
                    Khoi_MonHocDTO dto = new Khoi_MonHocDTO();
                    dto.IDKhoi = cmbKhoi.SelectedValue.ToString();
                    dto.IDMonHoc = idmonhoc;
                    dto.SoTietPhaiHoc = int.Parse(tbSoTietTrongTuan.Text);
                    if (!Khoi_MonHocBUS.CheckExit(dto))
                    {
                        if (Khoi_MonHocBUS.Them( ref dto))
                        {
                            MessageBox.Show("Cập Nhật Thành Công");
                            LoadDataforGirdView();
                        }
                        else
                        {
                            MessageBox.Show("Số tiết trong tuần lớn hơn tổng số tiết của khối");
                        }
                    }
                    else if (Khoi_MonHocBUS.CapNhat(ref dto))
                    {
                        MessageBox.Show("Cập Nhật Thành Công");
                        LoadDataforGirdView();
                    }
                    else
                    {
                        MessageBox.Show("Số tiết trong tuần lớn hơn tổng số tiết của khối");
                    }
                }
            }
            else
            {
                MessageBox.Show("Hãy chọn môn học cần cập nhật");
            }
        }

        private void cmbKhoi_SelectedIndexChanged(object sender, EventArgs e)
        {
            Khoi_MonHocDTO dto = new Khoi_MonHocDTO();
            dto.IDKhoi = cmbKhoi.SelectedValue.ToString();
            dto.IDMonHoc = idmonhoc;
            string sotiettrongtuan = Khoi_MonHocBUS.GetSoTietTrongTuan(dto);
            tbSoTietTrongTuan.Text = sotiettrongtuan;

            string tongsotiethoc = Khoi_MonHocBUS.GetTongSoTietHoc(dto.IDKhoi);
            tbTongSoTietHoc.Text = tongsotiethoc;
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            if (dgvDanhSach.SelectedRows.Count > 0)
            {
                Khoi_MonHocDTO dto = new Khoi_MonHocDTO();
                dto.IDKhoi = cmbKhoi.SelectedValue.ToString();
                dto.IDMonHoc = idmonhoc;
                if (Khoi_MonHocBUS.Xoa(dto.IDMonHoc, dto.IDKhoi))
                {
                    MessageBox.Show("Xóa Thành Công");
                    tbSoTietTrongTuan.Text = "";
                    LoadDataforGirdView();
                }
            }
        }
    }
}
